package com.byb.server.domain;

import io.swagger.annotations.ApiModelProperty;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.springframework.data.elasticsearch.annotations.Document;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Objects;

/**
 * A ProtectScope.
 */
@Entity
@Table(name = "protect_scope")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Document(indexName = "protectscope")
public class ProtectScope implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 重疾数量得分
     */
    @ApiModelProperty(value = "重疾数量得分")
    @Column(name = "strichen_num_score")
    private String strichenNumScore;

    /**
     * 重疾定义量得分
     */
    @ApiModelProperty(value = "重疾定义量得分")
    @Column(name = "sickness_definition_score")
    private String sicknessDefinitionScore;

    /**
     * 重疾赔付次数得分
     */
    @ApiModelProperty(value = "重疾赔付次数得分")
    @Column(name = "strichen_claim_times_score")
    private String strichenClaimTimesScore;

    /**
     * 身故得分
     */
    @ApiModelProperty(value = "身故得分")
    @Column(name = "diescore")
    private String diescore;

    /**
     * 轻症次数得分
     */
    @ApiModelProperty(value = "轻症次数得分")
    @Column(name = "mild_case_num_score")
    private String mildCaseNumScore;

    /**
     * 轻症定义得分
     */
    @ApiModelProperty(value = "轻症定义得分")
    @Column(name = "mild_definition_score")
    private String mildDefinitionScore;

    /**
     * 轻症赔付次数得分
     */
    @ApiModelProperty(value = "轻症赔付次数得分")
    @Column(name = "mild_claim_times_score")
    private String mildClaimTimesScore;

    /**
     * 其他保障豁免评分内容
     */
    @ApiModelProperty(value = "其他保障豁免评分内容")
    @Column(name = "other_protect_remit_text")
    private String otherProtectRemitText;

    /**
     * 其他保障豁免得分
     */
    @ApiModelProperty(value = "其他保障豁免得分")
    @Column(name = "other_protect_remit_score")
    private String otherProtectRemitScore;

    /**
     * 其他保障返还评分内容
     */
    @ApiModelProperty(value = "其他保障返还评分内容")
    @Column(name = "other_protect_restore_text")
    private String otherProtectRestoreText;

    /**
     * 其他保障返还得分
     */
    @ApiModelProperty(value = "其他保障返还得分")
    @Column(name = "other_protect_restore_score")
    private String otherProtectRestoreScore;

    /**
     * 其他保障分红评分内容
     */
    @ApiModelProperty(value = "其他保障分红评分内容")
    @Column(name = "other_protect_honge_text")
    private String otherProtectHongeText;

    /**
     * 其他保障分红得分
     */
    @ApiModelProperty(value = "其他保障分红得分")
    @Column(name = "other_protect_hong_score")
    private String otherProtectHongScore;

    /**
     * 其他保障绿色通道评分内容
     */
    @ApiModelProperty(value = "其他保障绿色通道评分内容")
    @Column(name = "other_protect_green_text")
    private String otherProtectGreenText;

    /**
     * 其他保障绿色通道得分
     */
    @ApiModelProperty(value = "其他保障绿色通道得分")
    @Column(name = "other_protect_green_score")
    private String otherProtectGreenScore;

    /**
     * 理赔宽松度
     */
    @ApiModelProperty(value = "理赔宽松度")
    @Column(name = "claim_fitness_score")
    private String claimFitnessScore;

    /**
     * 理赔速度
     */
    @ApiModelProperty(value = "理赔速度")
    @Column(name = "claim_speed_score")
    private String claimSpeedScore;

    @ManyToOne
    private Product product;

    // jhipster-needle-entity-add-field - Jhipster will add fields here, do not remove
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getStrichenNumScore() {
        return strichenNumScore;
    }

    public ProtectScope strichenNumScore(String strichenNumScore) {
        this.strichenNumScore = strichenNumScore;
        return this;
    }

    public void setStrichenNumScore(String strichenNumScore) {
        this.strichenNumScore = strichenNumScore;
    }

    public String getSicknessDefinitionScore() {
        return sicknessDefinitionScore;
    }

    public ProtectScope sicknessDefinitionScore(String sicknessDefinitionScore) {
        this.sicknessDefinitionScore = sicknessDefinitionScore;
        return this;
    }

    public void setSicknessDefinitionScore(String sicknessDefinitionScore) {
        this.sicknessDefinitionScore = sicknessDefinitionScore;
    }

    public String getStrichenClaimTimesScore() {
        return strichenClaimTimesScore;
    }

    public ProtectScope strichenClaimTimesScore(String strichenClaimTimesScore) {
        this.strichenClaimTimesScore = strichenClaimTimesScore;
        return this;
    }

    public void setStrichenClaimTimesScore(String strichenClaimTimesScore) {
        this.strichenClaimTimesScore = strichenClaimTimesScore;
    }

    public String getDiescore() {
        return diescore;
    }

    public ProtectScope diescore(String diescore) {
        this.diescore = diescore;
        return this;
    }

    public void setDiescore(String diescore) {
        this.diescore = diescore;
    }

    public String getMildCaseNumScore() {
        return mildCaseNumScore;
    }

    public ProtectScope mildCaseNumScore(String mildCaseNumScore) {
        this.mildCaseNumScore = mildCaseNumScore;
        return this;
    }

    public void setMildCaseNumScore(String mildCaseNumScore) {
        this.mildCaseNumScore = mildCaseNumScore;
    }

    public String getMildDefinitionScore() {
        return mildDefinitionScore;
    }

    public ProtectScope mildDefinitionScore(String mildDefinitionScore) {
        this.mildDefinitionScore = mildDefinitionScore;
        return this;
    }

    public void setMildDefinitionScore(String mildDefinitionScore) {
        this.mildDefinitionScore = mildDefinitionScore;
    }

    public String getMildClaimTimesScore() {
        return mildClaimTimesScore;
    }

    public ProtectScope mildClaimTimesScore(String mildClaimTimesScore) {
        this.mildClaimTimesScore = mildClaimTimesScore;
        return this;
    }

    public void setMildClaimTimesScore(String mildClaimTimesScore) {
        this.mildClaimTimesScore = mildClaimTimesScore;
    }

    public String getOtherProtectRemitText() {
        return otherProtectRemitText;
    }

    public ProtectScope otherProtectRemitText(String otherProtectRemitText) {
        this.otherProtectRemitText = otherProtectRemitText;
        return this;
    }

    public void setOtherProtectRemitText(String otherProtectRemitText) {
        this.otherProtectRemitText = otherProtectRemitText;
    }

    public String getOtherProtectRemitScore() {
        return otherProtectRemitScore;
    }

    public ProtectScope otherProtectRemitScore(String otherProtectRemitScore) {
        this.otherProtectRemitScore = otherProtectRemitScore;
        return this;
    }

    public void setOtherProtectRemitScore(String otherProtectRemitScore) {
        this.otherProtectRemitScore = otherProtectRemitScore;
    }

    public String getOtherProtectRestoreText() {
        return otherProtectRestoreText;
    }

    public ProtectScope otherProtectRestoreText(String otherProtectRestoreText) {
        this.otherProtectRestoreText = otherProtectRestoreText;
        return this;
    }

    public void setOtherProtectRestoreText(String otherProtectRestoreText) {
        this.otherProtectRestoreText = otherProtectRestoreText;
    }

    public String getOtherProtectRestoreScore() {
        return otherProtectRestoreScore;
    }

    public ProtectScope otherProtectRestoreScore(String otherProtectRestoreScore) {
        this.otherProtectRestoreScore = otherProtectRestoreScore;
        return this;
    }

    public void setOtherProtectRestoreScore(String otherProtectRestoreScore) {
        this.otherProtectRestoreScore = otherProtectRestoreScore;
    }

    public String getOtherProtectHongeText() {
        return otherProtectHongeText;
    }

    public ProtectScope otherProtectHongeText(String otherProtectHongeText) {
        this.otherProtectHongeText = otherProtectHongeText;
        return this;
    }

    public void setOtherProtectHongeText(String otherProtectHongeText) {
        this.otherProtectHongeText = otherProtectHongeText;
    }

    public String getOtherProtectHongScore() {
        return otherProtectHongScore;
    }

    public ProtectScope otherProtectHongScore(String otherProtectHongScore) {
        this.otherProtectHongScore = otherProtectHongScore;
        return this;
    }

    public void setOtherProtectHongScore(String otherProtectHongScore) {
        this.otherProtectHongScore = otherProtectHongScore;
    }

    public String getOtherProtectGreenText() {
        return otherProtectGreenText;
    }

    public ProtectScope otherProtectGreenText(String otherProtectGreenText) {
        this.otherProtectGreenText = otherProtectGreenText;
        return this;
    }

    public void setOtherProtectGreenText(String otherProtectGreenText) {
        this.otherProtectGreenText = otherProtectGreenText;
    }

    public String getOtherProtectGreenScore() {
        return otherProtectGreenScore;
    }

    public ProtectScope otherProtectGreenScore(String otherProtectGreenScore) {
        this.otherProtectGreenScore = otherProtectGreenScore;
        return this;
    }

    public void setOtherProtectGreenScore(String otherProtectGreenScore) {
        this.otherProtectGreenScore = otherProtectGreenScore;
    }

    public String getClaimFitnessScore() {
        return claimFitnessScore;
    }

    public ProtectScope claimFitnessScore(String claimFitnessScore) {
        this.claimFitnessScore = claimFitnessScore;
        return this;
    }

    public void setClaimFitnessScore(String claimFitnessScore) {
        this.claimFitnessScore = claimFitnessScore;
    }

    public String getClaimSpeedScore() {
        return claimSpeedScore;
    }

    public ProtectScope claimSpeedScore(String claimSpeedScore) {
        this.claimSpeedScore = claimSpeedScore;
        return this;
    }

    public void setClaimSpeedScore(String claimSpeedScore) {
        this.claimSpeedScore = claimSpeedScore;
    }

    public Product getProduct() {
        return product;
    }

    public ProtectScope product(Product product) {
        this.product = product;
        return this;
    }

    public void setProduct(Product product) {
        this.product = product;
    }
    // jhipster-needle-entity-add-getters-setters - Jhipster will add getters and setters here, do not remove

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        ProtectScope protectScope = (ProtectScope) o;
        if (protectScope.getId() == null || getId() == null) {
            return false;
        }
        return Objects.equals(getId(), protectScope.getId());
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(getId());
    }

    @Override
    public String toString() {
        return "ProtectScope{" +
            "id=" + getId() +
            ", strichenNumScore='" + getStrichenNumScore() + "'" +
            ", sicknessDefinitionScore='" + getSicknessDefinitionScore() + "'" +
            ", strichenClaimTimesScore='" + getStrichenClaimTimesScore() + "'" +
            ", diescore='" + getDiescore() + "'" +
            ", mildCaseNumScore='" + getMildCaseNumScore() + "'" +
            ", mildDefinitionScore='" + getMildDefinitionScore() + "'" +
            ", mildClaimTimesScore='" + getMildClaimTimesScore() + "'" +
            ", otherProtectRemitText='" + getOtherProtectRemitText() + "'" +
            ", otherProtectRemitScore='" + getOtherProtectRemitScore() + "'" +
            ", otherProtectRestoreText='" + getOtherProtectRestoreText() + "'" +
            ", otherProtectRestoreScore='" + getOtherProtectRestoreScore() + "'" +
            ", otherProtectHongeText='" + getOtherProtectHongeText() + "'" +
            ", otherProtectHongScore='" + getOtherProtectHongScore() + "'" +
            ", otherProtectGreenText='" + getOtherProtectGreenText() + "'" +
            ", otherProtectGreenScore='" + getOtherProtectGreenScore() + "'" +
            ", claimFitnessScore='" + getClaimFitnessScore() + "'" +
            ", claimSpeedScore='" + getClaimSpeedScore() + "'" +
            "}";
    }
}
